package ciapi

import (
	"go-middle/app/admin/service/ciservice"
	"go-middle/app/common/model/ci"
	"go-middle/library/response"

	"github.com/gogf/gf/container/garray"
	"github.com/gogf/gf/net/ghttp"
	"github.com/gogf/gf/os/glog"
)

// GetList CI任务列表
// @Tags    CI任务
// @Summary 任务列表
// @Accept   json
// @Produce  json
// @Param    body  body ci.SelectPageReq false "搜索"
// @Success 200 {object} ci.Entity "count 总数 data 列表"
// @Router /api/ci [get]
// @Security ApiKeyAuth
func GetList(r *ghttp.Request) {
	var req ci.SelectPageReq
	//获取参数
	if err := r.Parse(&req); err != nil {
		response.Error(r, err.Error(), nil)
	}
	count, list := ciservice.GetCiList(req)
	if count == 0 {
		response.SuccessList(r, count, garray.New())
	}
	response.SuccessList(r, count, list)
}

// CiAdd  添加CI任务
// @Tags    CI任务
// @Summary 添加任务
// @Accept   json
// @Produce  json
// @Param    body  body ci.ReqAdd true "添加任务"
// @Success 200 {object} response.JsonResponse
// @Router /api/ci [post]
// @Security ApiKeyAuth
func CiAdd(r *ghttp.Request) {
	var req ci.ReqAdd
	//获取参数
	if err := r.Parse(&req); err != nil {
		response.Error(r, err.Error(), nil)
	}
	err := ciservice.SaveCi(req)
	if err != nil {
		glog.Error(err)
		response.Error(r, err.Error(), nil)
	}
	response.Success(r, "操作成功", nil)
}

// CiEdit 编辑CI任务
// @Tags    CI任务
// @Summary 编辑任务
// @Accept   json
// @Produce  json
// @Param    body  body ci.ReqEdit true "修改任务"
// @Success 200 {object} response.JsonResponse
// @Router /api/ci [put]
// @Security ApiKeyAuth
func CiEdit(r *ghttp.Request) {
	var req ci.ReqEdit
	//获取参数
	if err := r.Parse(&req); err != nil {
		response.Error(r, err.Error(), nil)
	}
	err := ciservice.SaveCi(req)
	if err != nil {
		glog.Error(err)
		response.Error(r, err.Error(), nil)
	}
	response.Success(r, "操作成功", nil)
}

// CiDelete 删除CI任务
// @Tags    CI任务
// @Summary 删除任务
// @Accept   json
// @Produce  json
// @Param    body  body ci.ReqDelete true "删除任务"
// @Success 200 {object} response.JsonResponse
// @Router /api/ci [delete]
// @Security ApiKeyAuth
func CiDelete(r *ghttp.Request) {
	var req ci.ReqDelete
	//获取参数
	if err := r.Parse(&req); err != nil {
		response.Error(r, err.Error(), nil)
	}
	err := ciservice.DeleteCi(req.Ids)
	if err != nil {
		response.Error(r, "操作失败", nil)
	}
	response.Success(r, "操作成功", nil)
}
